//% color="#ff9a00" iconWidth=50 iconHeight=40
namespace rotation_sansor{
  
    //% block="读取 旋钮 [PIN]引脚的模拟值" blockType="reporter"
    //% PIN.shadow="normal" PIN.defl="pin1" 

    export function rotation_read(parameter: any, block: any) {      
     let pin=parameter.PIN.code;  
     let obj=parameter.PIN.parType
     console.log(parameter)
     //根据输入积木生成对象名
     if(obj=="unihiker.unihikerPin"){//行空板引脚
         obj=extractPinCode(pin)
         Generator.addInitHeader("rotation_read",`p_${obj}_in=Pin(Pin.P${obj}, Pin.ANALOG)`);
     }
    else if(obj=="data_stringmc"){//变量
       obj=pin
     }
     else if(obj=="text_normal"){//直接输入
         obj=pin
         
      }
      else{
         obj=pin
      }
     Generator.addImport("from pinpong.board import Board,Pin");
      
     Generator.addCode(`${pin}.read_analog()`);
   
    }

    //% block="读取 旋钮 [PIN]引脚的值（%）" blockType="reporter"
    //% PIN.shadow="normal" PIN.defl="pin1" 

    export function rotation_readpercent(parameter: any, block: any) {      
      let pin=parameter.PIN.code;  
      let obj=parameter.PIN.parType
      console.log(parameter)
      //根据输入积木生成对象名
      if(obj=="unihiker.unihikerPin"){//行空板引脚
          obj=extractPinCode(pin)
          Generator.addInitHeader("rotation_read",`p_${obj}_in=Pin(Pin.P${obj}, Pin.ANALOG)`);
      }
     else if(obj=="data_stringmc"){//变量
        obj=pin
      }
      else if(obj=="text_normal"){//直接输入
          obj=pin
          
       }
       else{
          obj=pin
       }
      Generator.addImport("from pinpong.board import Board,Pin");
       
      Generator.addCode(`(${pin}.read_analog())/4096*100`);
    
     }
    
    function extractPinCode(input: string): string | null {
      // 正则表达式匹配 "Pin.Px" 风格的字符串
      const match = input.match(/Pin\.P(\d+)/);
      // 如果匹配成功，返回匹配的部分（不包括"Pin."）
      return match ? match[1] : null;
    }
    
    
}